本发明公开了一种基于服务关联索引图的QoS感知Top-k服务组合系统,第一层为系统初始化与索引构建层,主要包括服务描述信息抽取模块、语义信息抽取模块、服务质量信息抽取模块,第二层服务请求处理与解决方案构建层,主要包括Web服务组合可用参数列表建立模块、基于服务信息及索引的服务发现模块、基于QoS感知的服务过滤模块、服务关联索引图更新模块、基于QoS的服务组合解决方案判定模块。与现有技术相比,本发明能够同时输出多个满足QoS请求的组合方案,并借助服务关联索引图有效剪枝服务组合求解空间,减少回溯次数,提高服务组合的效率,并保证服务组合结果的正确性,更加适用于云计算环境下海量网络服务及大规模用户个性化需求的自动服务组合问题。
1.一种基于服务关联索引图的QoS感知Top-k服务组合系统,其特征是,该系统分为两个处理层,一个为系统初始化与索引构建层,另一个为服务请求处理与解决方案构建层;其中:系统初始化与索引构建层对Web服务信息经过服务描述信息抽取模块、语义信息抽取模块和服务质量信息抽取模块的处理;服务描述信息抽取模块,用于将WSDL文件中的服务和输入参数、输出参数抽取出来,分别建立根据参数到服务的关联关系索引模块和根据服务到参数的关联关系索引模块,以便于快速检索服务及参数;这些服务信息和服务与参数的关联关系存储在系统的服务信息及索引库中;参数到服务的关联关系索引模块,用于建立参数到服务的对应关系;服务到参数的关联关系索引模块,用于建立服务到参数的对应关系;语义信息抽取模块用于将OWL文件中的概念信息、类名、实例名及其继承关系抽取出来,从而构建概念关联关系索引模块;概念关联关系索引模块用于根据OWL文件中描述的语义关系建立各概念间的父子关系,这些索引关系存储在系统的概念信息及索引库;服务质量信息抽取模块用于将WSLA文件中的QoS信息抽取出来,存储在服务质量信息库中;服务请求处理与解决方案构建层对服务请求依序经过解析器、Web服务组合可用参数列表建立模块、基于服务信息及索引的服务发现模块、基于QoS感知的服务过滤模块、服务关联索引图更新模块和基于QoS的服务组合解决方案判定模块的处理,其中:解析器负责对服务请求文件进行解析,包括解析OWL、WSDL及WSLA文件;OWL文件经解析得到类名、实例名及其继承关系;WSDL文件经解析得到服务的输入参数及输出参数,WSLA文件经解析得到QoS信息;Web服务组合可用参数列表建立模块,在系统获取到服务请求的输入参数后,根据概念信息及索引库中概念间的语义关系,将输入参数及其父类及索引图中已有服务的输出参数及其父类都加入到可用参数列表中;基于服务信息及索引的服务发现模块,根据服务信息及索引库中参数到服务的关联关系索引,将可用参数列表中的参数对应的服务选择出来,加入到候选服务集合中;基于QoS感知的服务过滤模块,将服务请求给出的服务质量约束与服务质量信息库中候选服务集合中服务的质量信息相比较,找出不满足QoS的服务并将其过滤;服务关联索引图更新模块,用候选服务集合中的服务逐步建立起服务关联索引图;基于QoS的服务组合解决方案判定模块,根据对多个可行解的QoS排序得出最终的Top-k个可行解。
2.如权利要求1所述的基于服务关联索引图的QoS感知Top-k服务组合系统,其特征是,在第一层中,参数到服务的关联关系索引模块、服务到参数的关联关系索引模块和在语义信息抽取模块中概念关联关系索引模块,这些模块中的索引建立都是基于哈希表实现的;在参数到服务的关联关系索引模块中将凡是以这个参数作为服务的输入参数的所有服务链接起来,同时将凡是以这个参数作为服务的输出参数的所有服务也链接起来;由此,根据服务查找其对应的参数的时间复杂度为O(1);在服务到参数的关联关系索引模块中,将服务与其输入参数、输出参数分别链接起来;由此,根据服务查找其对应的参数的时间复杂度也为O(1);在概念关联关系索引模块中,每一实例指向其所实现的类,各类又分别指向其直接父类;由此,根据实例查找其对应类的时间复杂度为O(1),根据类查找其直接父类的时间复杂度也为O(1)。
3.如权利要求1所述的基于服务关联索引图的QoS感知Top-k服务组合系统,其特征是,所述语义信息抽取模块抽取的概念信息包括服务的基本描述和功能描述即服务名称、服务提供者、服务的分类、输入参数、输出参数、前提、结果,这些描述信息的抽取使得系统支持语义的服务组合。
4.如权利要求1所述的基于服务关联索引图的QoS感知Top-k服务组合系统,其特征是,所述语义信息抽取模块抽取的概念间的继承关系信息包括类与实例的关系以及类与其父类的继承关系,这些关系为发现Web服务之间的隐含关联提供了条件。
5.如权利要求1所述的基于服务关联索引图的QoS感知Top-k服务组合系统,其特征是,所述Web服务组合可用参数列表建立模块中,使用了语义概念信息及索引库中的参数对应的概念间的继承关系,即在确定了描述不同服务的输入输出端所用的概念之间的关系后,为进一步发现可用服务提供条件;假设服务请求的输入参数对应的概念为C,那么C的派生概念或者C继承的概念,也完全可能与C匹配,因而存在多个可用参数的选择。
6.如权利要求1所述的基于服务关联索引图的QoS感知Top-k服务组合系统,其特征是,所述服务关联索引图更新模块中,所用到的服务关联索引图其实就是一种扩展规划图,在扩展规划图的结构设计中,增加了辅助节点,从而在搜索结束时直接得到所有可行解及其QoS,避免了进行多次反向搜索;辅助节点的结构为<QoS,AvailablePartName,DAG,Is_Solution>,其中QoS表示组合服务执行到此节点时的QoS指标,AvailablePartName表示组合服务执行到此节点时的可用参数列表,DAG存储到此节点时组合服务的DAG图,DAG图为二元组<V,E>,其中V={s|s∈组合服务},E={<si,sj>|si的一个或多个输出参数为sj一个或多个的输入参数},Is_Solution表示此时组合服务是否为可行解。
7.如权利要求6所述的基于服务关联索引图的QoS感知Top-k服务组合系统,其特征是,服务关联索引图是为找到满足服务请求的可行组合服务而自动构建起来的,其构建步骤为:第一步,初始化最初辅助节点、全局可用参数列表以及搜索结束标志;第二步,检查搜索结束标志是否为真,如果为真,则返回可行解队列;否则,执行第三步;第三步,在搜索结束标志为假的情况下,判断可用参数列表中是否包含服务请求的输出参数;如果满足条件,则把可满足服务请求输出参数的辅助节点合并为一个辅助节点,标记为可行解,并将其加入可行解队列中;如果不满足条件,则继续执行第四步;第四步,如果候选服务集合中存在一个服务在可用参数列表中,则标记搜索结束标志为假,并将此服务加入到服务组合图中,加入辅助节点,同时计算此服务节点当前的QoS、可用参数名AvailablePartName以及DAG;把此服务的输出参数及其所有父类加入到下一轮可用参数列表中;循环此过程,直到候选服务集合中不存在满足其输入参数在可用参数列表中条件的服务;第五步,将下一轮可用参数列表中的可用参数加入到全局可用参数列表中;第六步,返回到第二步。
技术领域本发明涉及一种基于QoS感知的Top-k服务组合系统,特别是涉及一种在主要目标是在服务关联索引图基础上的QoS感知Top-k服务组合方法。
背景技术本发明提出的基于服务关联索引图的服务组合方法是重点针对传统图规划方法暴露的以下问题进行的扩展:(1)传统图规划方法求解服务组合方案,搜索空间大,效率低。传统的图规划方法在进行服务组合时,在规划图建立完成之后,需要进行反向搜索,确定最终的组合服务。如果候选服务的数量稍大,则求解方案的搜索空间将会迅速扩大,组合效率很难提高。(2)传统图规划方法很难支持求解Top-k服务组合方案。若需求解Top-k个组合服务,由于每一个组合服务都需要在最后进行反向搜索,会使得求解方案的搜索空间爆炸性增长,效率大大降低。(3)传统图规划方法求解服务组合方案,语义支持不够。服务组合方案的可用性很大程度依赖于服务参数等的语义匹配,传统的图规划方法并不考虑这些因素,使得有些语义关联的服务并未被发现,造成丢失一些可行解的情况。另外,传统的服务组合方法大体可以分为三类:(1)基于QoS模型的服务聚合与协同研究现状这类方法中,用户需求及偏好以QoS模型中的评估因子及其权重描述,然后在候选服务中使用优化算法挑选最优QoS值的服务组合。(2)基于形式化的服务聚合与协同研究现状这类研究主要以形式化语言描述用户需求,使用现有的理论方法和工具,判断服务聚合与协同是否满足用户需求,并从各个角度分析和验证服务流程正确性。(3)基于语义本体的服务聚合与协同研究这类研究主要使用语义Web技术,通过预先定义的本体来描述、组织服务。然后通过语义匹配和语义推理规则,判断服务与用户需求是否匹配。但综上所述,这些方法在上述三个问题上的效果也并不明显。为此,本发明针对求解Top-k服务组合方案面临的问题,在以下几个发明点实现突破,改善服务组合效果:(1)通过建立服务到参数、参数到服务的索引及服务QoS索引,来提高传统服务组合求解方案的搜索效率。(2)在传统图规划基础上增加扩展节点,存储搜索到当前节点的所有服务组合求解方案,形成服务关联索引图,来避免大规模的反向搜索复杂度,以适应求解Top-k服务组合解决方案的需要。(3)通过服务语义信息抽取,建立语义概念信息及其继承关系,从而构建概念关联关系索引来描述各概念间的父子关系,来解决传统服务组合方法概念继承关系语义支持度不足的问题。
发明内容为了克服传统图规划方法的不足,本发明提出了一种基于服务关联索引图的QoS感知Top-k服务组合系统,它在图规划方法的基础上,加入辅助节点,在搜索结束时直接得到多个可行解及其QoS,无需在最终图上进行反向搜索。为实现上述目的,本发明采用如下技术方案:一种基于服务关联索引图的QoS感知Top-k服务组合系统,该系统分为两个处理层,一个为系统初始化与索引构建层,另一个为服务请求处理与解决方案构建层;其中:系统初始化与索引构建层对Web服务信息经过服务描述信息抽取模块、语义信息抽取模块和服务质量信息抽取模块的处理;服务描述信息抽取模块,用于将WSDL文件中的服务和输入参数、输出参数抽取出来,分别建立根据参数到服务的关联关系索引模块和根据服务到参数的关联关系索引模块,以便于快速检索服务及参数;这些服务信息和服务与参数的关联关系存储在系统的服务信息及索引库中;参数到服务的关联关系索引模块,用于建立参数到服务的对应关系;服务到参数的关联关系模块,用于建立服务到参数的对应关系;语义信息抽取模块用于将OWL文件中的概念信息、类名、实例名及其继承关系抽取出来,从而构建概念关联关系索引模块;概念关联关系索引模块用于根据OWL文件中描述的语义关系建立各概念间的父子关系,这些索引关系存储在系统的概念信息及索引库;服务质量信息抽取模块用于将WSLA文件中的QoS信息抽取出来,存储在服务质量信息库中;服务请求处理与解决方案构建层对服务请求依序经过解析器、Web服务组合可用参数列表建立模块、基于服务信息及索引的服务发现模块、基于QoS感知的服务过滤模块、服务关联索引图更新模块和基于QoS的服务组合解决方案判定模块的处理,其中:解析器负责对服务请求文件进行解析,包括解析OWL、WSDL及WSLA文件;OWL文件经解析得到类名、实例名及其继承关系;WSDL文件经解析得到服务的输入参数及输出参数,WSLA文件经解析得到QoS信息;Web服务组合可用参数列表建立模块,在系统获取到服务请求的输入参数后,根据概念信息及索引库中概念间的语义关系,将输入参数及其父类及索引图中已有服务的输出参数及其父类都加入到可用参数列表中;基于服务信息及索引的服务发现模块,根据服务信息及索引库中参数到服务的关联关系索引,将可用参数列表中的参数对应的服务选择出来,加入到候选服务集合中;基于QoS感知的服务过滤模块,将服务请求给出的服务质量约束与服务质量信息库中候选服务集合中服务的质量信息相比较,找出不满足QoS的服务并将其过滤;服务关联索引图更新模块,用候选服务集合中的服务逐步建立起服务关联索引图;基于QoS的服务组合解决方案判定模块,根据对多个可行解的QoS排序得出最终的Top-k个可行解。在第一层中,参数到服务的关联关系索引模块和服务到参数的关联关系索引模块、在语义信息抽取模块中,概念关联关系索引模块,这些模块中的索引建立都是基于哈希表实现的。在参数到服务的关联关系索引建立模块中将凡是以这个参数作为服务的输入参数的所有服务链接起来,同时将凡是以这个参数作为服务的输出参数的所有服务也链接起来,由此,根据服务查找其对应的参数的时间复杂度为O(1)。在服务到参数的关联关系索引建立模块中,将服务与其输入参数、输出参数分别链接起来,由此,根据服务查找其对应的参数的时间复杂度也为O(1)。在概念关联关系索引建立模块中,每一实例指向其所实现的类,各类又分别指向其直接父类,由此,根据实例查找其对应类的时间复杂度为O(1),根据类查找其直接父类的时间复杂度也为O(1)。所述语义信息抽取模块抽取的概念信息包括服务的基本描述和功能描述即服务名称、服务提供者、服务的分类、输入参数、输出参数、前提、结果,这些描述信息的抽取使得系统支持语义的服务组合。所述语义信息抽取模块抽取的概念间的继承关系信息包括类与实例的关系以及类与其父类的继承关系,这些关系为发现Web服务之间的隐含关联提供了条件。所述Web服务组合可用参数列表建立模块中,使用了语义概念信息及索引库中的参数对应的概念间的继承关系,即在确定了描述不同服务的输入输出端所用的概念之间的关系后,为进一步发现可用服务提供条件;假设服务请求的输入参数对应的概念为C,那么C的派生概念或者C继承的概念,也完全可能与C匹配,因而存在多个可用参数的选择。所述服务关联索引图更新模块中,所用到的服务关联索引图其实就是一种扩展规划图,在扩展规划图的结构设计中,增加了辅助节点,从而在搜索结束时直接得到所有可行解及其QoS,避免了进行多次反向搜索。辅助节点的结构为<QoS,AvailablePartName,DAG,Is_Solution>,其中QoS表示组合服务执行到此节点时的QoS指标,AvailablePartName表示组合服务执行到此节点时的可用参数列表,DAG存储到此节点时组合服务的DAG图,DAG图为二元组<V,E>,其中V={s|s∈组合服务},E={<s
i,s
j>|s
i的一个或多个输出参数为s
j一个或多个的输入参数},Is_Solution表示此时组合服务是否为可行解。服务关联索引图是为找到满足服务请求的可行组合服务而自动构建起来的,其构建步骤为:第一步,初始化最初辅助节点、全局可用参数列表以及搜索结束标志;第二步,检查搜索结束标志是否为真,如果为真,则返回可行解队列;否则,执行第三步;第三步,在搜索结束标志为假的情况下,判断可用参数列表中是否包含服务请求的输出参数;如果满足条件,则把可满足服务请求输出参数的辅助节点合并为一个辅助节点,标记为可行解,并将其加入可行解队列中;如果不满足条件,则继续执行第四步;第四步,如果候选服务集合中存在一个服务在可用参数列表中,则标记搜索结束标志为假,并将此服务加入到服务组合图中,加入辅助节点,同时计算此服务节点当前的QoS、可用参数名AvailablePartName以及DAG;把此服务的输出参数及其所有父类加入到下一轮可用参数列表中;循环此过程,直到候选服务集合中不存在满足其输入参数在可用参数列表中条件的服务;第五步,将下一轮可用参数列表中的可用参数加入到全局可用参数列表中;第六步,返回到第二步。本发明与现有技术相比,基于服务关联索引图的Top-k服务组合算法能够同时输出多个满足QoS请求的组合方案,并借助服务关联索引图能够有效剪枝服务剪枝组合求解空间,减少回溯次数,提高服务组合的效率,并保证服务组合结果的正确性,更加适用于云计算环境下海量网络服务及大规模用户个性化需求的自动服务组合问题。
附图说明图1为本发明的系统结构图;图2为基于哈希表实现的服务索引结构图;图3为基于哈希表实现的概念索引结构图;图4为本发明的组合服务的DAG图;图5为本发明的组合服务的服务关联索引图;图6为本发明的服务关联索引图构建流程。
具体实施方式下面结合附图实施例对本发明做进一步说明。如图1所示,为本发明的系统结构图,该系统输入一个服务请求,根据输入动态构建服务关联索引图,通过Top-k服务组合算法求解并输出多个满足用户QoS需求的解决方案。该系统包含的各种索引库和各种模块按照第一阶段和第二阶段两个阶段顺序执行,第一阶段为系统初始化与索引构建阶段,对Web服务信息经过服务描述信息抽取模块、语义信息抽取模块和服务质量信息抽取模块的处理:1.Web服务信息传送到服务描述信息抽取模块,该模块用于将WSDL文件中的服务和输入参数、输出参数抽取出来,基于哈希表的形式,根据参数到服务的关联关系建立索引模块,根据服务到参数的关联关系建立索引模块,以便于快速检索服务及参数。这些服务信息和服务与参数的关联关系存储在系统的服务信息及索引库中。参数到服务的关联关系索引建立模块,用于建立参数到服务的对应关系。将凡是以这个参数作为服务的输入参数的所有服务链接起来,同时将凡是以这个参数作为服务的输出参数的所有服务也链接起来。由此,根据服务查找其对应的参数的时间复杂度为O(1)。服务到参数的关联关系建立模块,用于建立服务到参数的对应关系。将服务与其输入参数、输出参数分别链接起来。由此,根据服务查找其对应的参数的时间复杂度也为O(1)。2.Web服务信息传送到语义信息抽取模块,不仅抽取了OWL文件中相关领域的语义概念信息,包括服务的基本描述和功能描述,如服务名称、服务提供者、服务的分类、输入参数、输出参数、前提、结果等,这些描述信息的抽取使得系统支持语义的服务组合。而且还抽取了概念间的继承关系信息,包括类与实例的关系以及类与其父类的继承关系。这些关系为更好地发现Web服务之间的隐含关联提供了条件,从而构建概念关联关系索引建立模块。概念关联关系索引建立模块,用于根据OWL文件中描述的语义关系建立各概念间的父子关系,该索引建立同样基于哈希表的实现。每一实例指向其所实现的类,各类又分别指向其直接父类。由此,根据实例查找其对应类的时间复杂度为O(1),根据类查找其直接父类的时间复杂度也为O(1)。这些索引关系存储在系统的概念信息及索引库。3.Web服务信息传送到服务质量信息抽取模块,该模块用于将WSLA文件中的QoS信息抽取出来,存储在服务质量信息库中。第二阶段为服务请求处理与解决方案构建阶段,对服务请求依序经过解析器、Web服务组合可用参数列表建立模块、基于服务信息及索引的服务发现模块、基于QoS感知的服务过滤模块、服务关联索引图更新模块和基于QoS的服务组合解决方案判定模块的处理:1.解析器负责对服务请求文件进行解析,包括解析OWL、WSDL及WSLA文件。OWL文件经解析得到类名、实例名及其继承关系。WSDL文件经解析得到服务的输入参数及输出参数,WSLA文件经解析得到QoS信息。2.Web服务组合可用参数列表建立模块,使用了语义概念信息及索引库中的参数对应的概念间的继承关系,即在确定了描述不同服务的输入输出端所用的概念之间的关系后,为进一步发现可用服务提供条件;假设服务请求的输入参数对应的概念为C,那么C的派生概念或者C继承的概念,也完全可能与C匹配,因而存在多个可用参数的选择。将输入参数及其父类及索引图中已有服务的输出参数及其父类都加入到可用参数列表中。3.基于服务信息及索引的服务发现模块,根据服务信息及索引库中参数到服务的关联关系索引,将可用参数列表中的参数对应的服务选择出来,加入到候选服务集合中。4.基于QoS感知的服务过滤模块,将服务请求给出的服务质量约束与服务质量信息库中候选服务集合中服务的质量信息相比较,找出不满足QoS的服务并将其过滤。在本发明的服务自动组合系统中设置这种QoS感知的过滤模块的原因是:在进行服务发现后,会产生一些不满足用户QoS需求的服务,导致增加了搜索空间。基于QoS感知的服务过滤模块使搜索空间变得更小。5.服务关联索引图更新模块,该模块用于在系统获取到候选服务集合后,根据输入动态构建服务关联索引图,通过Top-k服务组合算法求解并输出多个满足用户QoS需求的解决方案。在服务关联索引图更新过程中加入了辅助节点,使得在搜索结束时直接得到所有可行解及其QoS,避免了进行反向搜索;辅助节点的结构为<QoS,AvailablePartName,DAG,Is_Solution>,其中QoS表示组合服务执行到此节点时的QoS指标,AvailablePartName表示组合服务执行到此节点时的可用参数列表,DAG存储到此节点时组合服务的DAG图,DAG图为二元组<V,E>,其中V={s|s∈组合服务},E={<s
i,s
j>|s
i的一个或多个输出参数为sj一个或多个的输入参数}.Is_Solution表示此时组合服务是否为可行解。6.基于QoS的服务组合解决方案判定模块,该模块利用上一步建立的服务关联索引图,对得到的多个可行解的QoS排序,从而得出最终的Top-k个可行解。如图2、图3所示,为本发明基于哈希表实现的服务索引、概念索引结构图。在服务索引结构图2中,pi表示服务的输入参数、输出参数,指向以pi为第一个输入参数和输出参数的服务链表,其中存储了服务名(in_si,out_si)。s
i表示服务,指向si的完整的输入参数(Input_partname)和输出参数(Output_partname)列表。在概念索引结构图3中,Insti表示OWL文件中的实例,Coni表示OWL文件中的类。如图4所示,为本发明的组合服务的DAG图,将其表示为一个二元组<V,E>,其中V={s|s∈组合服务},E={<s
i,s
j>|s
i的一个或多个输出参数为s
j一个或多个的输入参数}。如图5所示,为本发明的基于服务关联索引图的服务组合实例,服务关联索引图是一个扩展规划图。圆形表示Web服务,其中依次表示Web服务名称及其响应时间,矩形表示辅助节点。在开始和最后建立两个虚拟Web服务:Start和End。Start的输入、输出均为组合请求的输入,End的输出为组合请求的输出。组合请求的输入为A、B、C,输出为G、I。如图6所示,为本发明的服务关联索引图构建流程,该流程包括以下步骤:第一步,初始化最初辅助节点、全局可用参数列表以及搜索结束标志;第二步,检查搜索结束标志是否为真。如果为真,则返回可行解队列。否则,执行第三步;第三步,在搜索结束标志为假的情况下,判断可用参数列表中是否包含服务请求的输出参数。如果满足条件,则把可满足服务请求输出参数的辅助节点合并为一个辅助节点,标记为可行解,并将其加入可行解队列中。如果不满足条件,则继续执行第四步;第四步,如果候选服务集合中存在一个服务在可用参数列表中,则标记搜索结束标志为假,并将此服务加入到服务组合图中,加入辅助节点,同时计算此服务节点当前的QoS、可用参数名(AvailablePartName)以及DAG。把此服务的输出参数及其所有父类加入到下一轮可用参数列表中。循环此过程,直到候选服务集合中不存在满足其输入参数在可用参数列表中条件的服务;第五步,将下一轮可用参数列表中的可用参数加入到全局可用参数列表中;第六步,返回到第二步。